<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Reportes extends CI_Controller {

    public function index() {
        exit("No es posible acceder");
    }

    public function conPostulados($permiso = null, $opc = null) {
        /* Consulta de postulados */
        if ($this->valida()) {
            $this->load->model("reportes_model", "reportes", TRUE);
            $parametros = array();
            if ($this->session->userdata("rolId") == 1) {
                if ($permiso == 36) { //abre la ventana de consulta avanzada de postulados en el sistema
                    //se asignan valores,porcentajes y nombres al arreglo
                    $this->load->model("registro_model", "registro", TRUE);
                    $parametros["departamentos"] = $this->registro->buscaDepartamento();
                    $this->load->view("repPostuladosAdmin_view", $parametros);
                } else {
                    //se asignan valores,porcentajes y nombres al arreglo
                    $parametros = $this->reportes->postulados($this->session->userdata("rolId"), $this->session->userdata("tablaUsuarioId"));
                    $parametros["admin"] = "si";
                    $this->load->view("repPostulados_view", $parametros);
                }
            } else {
                //se asignan valores,porcentajes y nombres al arreglo
                $parametros = $this->reportes->postulados($this->session->userdata("rolId"), $this->session->userdata("tablaUsuarioId"));
                $this->load->view("repPostulados_view", $parametros);
            }
        }
    }

//fin public function conPostulados(){

    public function conPermanencia($permiso = null, $opc = null) {
        /* Consulta la permanencia de las personas en unos periodos de tiempo establecidos */
        if ($this->valida()) {
            $this->load->model("reportes_model", "reportes", TRUE);
            $parametros = array();
            switch ($permiso) {
                case 'CONS':
                    $fecha = ($this->input->post("fecIni")) ? $this->input->post("fecIni") : "1986-10-01";
                    if (!$this->input->post("periodos"))
                        exit("Debe indicar el número de periodo, como minímo");
                    $parametros = $this->reportes->permanencia($this->session->userdata("rolId"), $this->session->userdata("tablaUsuarioId"), $fecha, $this->input->post("periodos"));
                    krsort($parametros["datos"]);
                    krsort($parametros["nombres"]);
                    krsort($parametros["rangos"]);
                    $parametros["colores"] = "'#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'";
                    $tmpArray = explode(",", $parametros["colores"]);
                    $resultArray = array();
                    foreach ($tmpArray as $val) {
                        array_push($resultArray, trim(trim($val), "'"));
                    }
                    $parametros["coloresArray"] = $resultArray;
                    $parametros["datos"] = $this->arrayphp2arrayjs($parametros["datos"]);
                    $this->load->view("repContratadosGraficas_view", $parametros);
                    break;
                default:
                    $this->load->view("repPostuladosFiltro_view", $parametros);
                    break;
            }
        }
    }

//fin public function conPermanencia(){

    public function conContratados($permiso = null, $opc = null) {
        /* Consulta la permanencia de las personas en unos periodos de tiempo establecidos */
        if ($this->valida()) {
            $this->load->model("reportes_model", "reportes", TRUE);
            $parametros = array();
            $this->load->model("registro_model", "registro", TRUE);
            $parametros["departamentos"] = $this->registro->buscaDepartamento();
            $rolId = $this->session->userdata("rolId");
            $parametros["rolId"] = $rolId;
            if ($rolId == 4 || $permiso == "CONS") {
                $fechaIni = ($this->input->post("fecIni")) ? $this->input->post("fecIni") : "1986-10-01";
                $fechaFin = ($this->input->post("fecFin")) ? $this->input->post("fecFin") : "2986-10-01";
                $parametros = $this->reportes->contratados($this->session->userdata("rolId"), $this->session->userdata("tablaUsuarioId"), $fechaIni, $fechaFin);
                $parametros["rolId"] = $rolId; //se repite puesto que antes se pierde con la asignacion del modelo
                $this->load->view("repContratados_view", $parametros);
            }else
                $this->load->view("repContratadosFiltro_view", $parametros);
        }
    }

//fin public function conContratados(){

    public function extraCiudades() {
        /* Extrae las ciudades de un departamento especifico */
        $this->load->model("registro_model", "registro", TRUE);
        $ciudades = $this->registro->buscaCiudad($this->input->post("depto"));
        $mostrar = "<select id='ciudad' name='ciudad' title='Ciudades activas en el sistema' onchange='fncambiaCiudad(this.value);'>";
        $mostrar .= "<option value=''>Todas</option>";
        foreach ($ciudades->result() as $row) {
            $mostrar .= "<option value='{$row->ciudadId}'>{$row->ciudad}</option>";
        }
        echo $mostrar;
    }

//fin public function extraCiudades(){

    public function extraInstituciones() {
        /* Extrae las instituciones de una ciudad determinada */
        $this->load->model("reportes_model", "reportes", TRUE);
        $ciudades = $this->reportes->extraeInstituciones($this->input->post("ciudadId"));
        $mostrar = "<select id='instituciones' name='instituciones' title='Instituciones de la ciudad elegida' onchange='fncambiaInsti(this.value);'>";
        $mostrar .= "<option value=''>Todas</option>";
        foreach ($ciudades->result() as $row) {
            $mostrar .= "<option value='{$row->institucionId}'>{$row->institucionRazon}</option>";
        }
        echo $mostrar;
    }

//fin public function extraCiudades(){

    public function valida() {
        //funcion para validar que aún esta activo en el sistema
        if (!$this->session->userdata('usuarioId')) {
            echo "<script>alert(\"Su session a expirado\"); parent.location = '" . site_url("inicio/index/") . "';</script>";
            exit();
            return;
        }
        return true;
    }

//fin public function valida() { 

    private function arrayphp2arrayjs($arreglos) {
        /* Funcion para convertir un arreglo php a un arreglo de js adecuado para la libreria grafica */
        // [[50,90,55,71],[0.5,0.9,0.5,0.1]];
        $retorna = "[";
        foreach ($arreglos as $arreglo) {
            $retorna .= "[";
            krsort($arreglo);
            foreach ($arreglo as $row) {
                $retorna .= $row . ",";
            }
            $retorna = trim($retorna, ",");
            $retorna .= "],";
        }
        $retorna = trim($retorna, ",");
        return $retorna . "]";
    }

//fin private function arrayphp2arrayjs($arreglos){
}

?>
